package com.ihrm.common.controller;

import com.ihrm.domain.system.response.ProfileResult;
import io.jsonwebtoken.Claims;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.subject.Subject;
import org.springframework.web.bind.annotation.ModelAttribute;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BaseController {

	protected HttpServletRequest request;
	protected HttpServletResponse response;
	protected String companyId;
	protected String companyName;
	protected Claims claims;
	protected String userId;

	//使用shiro获取
	//进入控制器之前执行的方法
	@ModelAttribute
	public void serResAndReq(HttpServletRequest request,HttpServletResponse response){
		this.request = request;
		this.response = response;

		//获取session中的安全数据
		Subject subject = SecurityUtils.getSubject();
		//subject获取所有的安全集合
		PrincipalCollection principals = subject.getPrincipals();
		if (principals != null && !principals.isEmpty()){
			//获取安全数据
			ProfileResult result = (ProfileResult) principals.getPrimaryPrincipal();
			this.companyId = result.getCompanyId();
			this.companyName = result.getCompany();
			this.userId = result.getUserId();
		}
	}


	//使用Jwt获取数据
/*	@ModelAttribute
	public void setResAndReq(HttpServletRequest request, HttpServletResponse response){
		this.request = request;
		this.response = response;

		Object obj =request.getAttribute("user_claims");
		if(obj!=null){
			this.claims = (Claims)obj;
		}

		this.companyId = claims.get("companyId").toString();
		this.companyName = claims.get("companyName").toString();

*//*		*//**//*this.companyId = request.getParameter("companyId");*//**//*
		this.companyId = "1";
		*//**//*this.companyName = request.getParameter("companyName");*//**//*
		this.companyName = "晨曦软件开发工作室";*//*
	}*/
}
